获取 token

kubectl -n kube-system describe $(kubectl -n kube-system get secret -n kube-system -o name | grep namespace) | grep token

删除节点
# 首先驱逐要删除节点(假设节点名为k8s-node1)上的pods（master节点执行）
kubectl drain k8s-node1 --delete-local-data --force --ignore-daemonsets
# 然后执行删除（master节点执行）
kubectl delete node k8s-node1
# 最后在删除的节点机器上执行
kubeadm reset

添加节点
添加新节点需要在原master节点获取token和hash值

# 获取token（在master节点执行）
kubeadm token create	# 有效期24小时
# 生成永久token命令: kubeadm token create --ttl 0
# 查看token
kubeadm token list

# 获取hash值（在master节点执行）
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

# 加入集群（在新节点机器上执行）
kubeadm join $ip:$port --token $token_value --discovery-token-ca-cert-hash  sha256:$hash_value
# 其中
# $ip 为master节点ip地址
# $port 为k8s端口号，通常为6443
# $token_value 为上面生成的token值
# $hash_value 为上面生成的hash值
重启NotReady节点
# 一、 master节点直接在对应节点重启kubelet服务
systemctl restart kubelet

# 二、slave节点
# 1. 设置节点为不可调度状态（在master节点执行）
kubectl cordon nodename
# 2. 驱逐节点上pods（在master节点执行）
kubectl drain nodename --delete-local-data --force --ignore-daemonsets
# 3. 重启服务(在对应节点机器上执行)
systemctl restart kubelet
# 4. 恢复节点为可调度状态（在master节点执行）
kubectl uncordon nodename

k8s kubesphere 安装
yum install socat conntrack-tools -y
yum install conntrack-tools 

./kk create config --with-kubesphere v3.2.1
./kk create cluster -f config-sample.yaml

镜像导出
docker images |awk '{print $1}' |sed -n '2,$p' |xargs docker save -o zhaobsh.tar

添加 应用商店
bitnami  
helm repo add bitnami https://charts.bitnami.com/bitnami

添加污点
kubectl taint nodes master key=value:NoSchedule
删除污点
kubectl taint nodes master key:NoSchedule-


配置 环境变量

#try setting KUBERNETES_MASTER environment variable
export KUBECONFIG=/etc/kubernetes/admin.conf
